﻿#ifndef _BASE_STREAM_AUIDO_
#define _BASE_STREAM_AUIDO_

#include "xcast_handler.h"

namespace Stream {
namespace Audio {
namespace Listener {

class Interface {
public:
  virtual ~Interface() {}

  virtual void OnUpAudioStream(const char* stream_id, bool add) = 0;

  virtual void OnDownAudioStream(const char* stream_id, uint64_t uin, bool add) = 0;
    
  virtual void OnAudioStreamUpdate(const char* stream_id, uint64_t uin, int state) = 0;
};

void Add(Interface* listener);

void Remove(Interface* listener);
}

namespace XcastEvent {
void OnAdd(const char* stream_id, bool up, uint64_t uin, bool add);
void OnUpdate(const char* stream_id, uint64_t uin, int state);
}

int Start(const char* channel_id, const char* stream_id, bool enable);
int GetState(const char* stream_id);
}
}
#endif

